﻿using System.ComponentModel.DataAnnotations;
using Ewk.MachineLearning.Classification.Interfaces;

namespace Ewk.MachineLearning.Persistance.Domain
{
/*
    /// <summary>
    /// Represents a link between a <see cref="Category"/> and a <see cref="Word"/>.
    /// </summary>
    public class WordForCategoryLink :
        Entity,
        IFeatureLink<Category, Word>
    {
        /// <summary>
        /// The <see cref="Category"/> to which this <see cref="WordForCategoryLink"/> links a <see cref="Word"/>.
        /// </summary>
        [Required]
        public virtual Category Category { get; set; }

        /// <summary>
        /// The <see cref="Word"/> to which this <see cref="WordForCategoryLink"/> links a <see cref="Category"/>.
        /// </summary>
        [Required]
        public virtual Word Word { get; set; }

        /// <summary>
        /// The number of times the <see cref="Word"/> in this <see cref="WordForCategoryLink"/> links to a <see cref="Category"/>.
        /// </summary>
        public long Occurrence { get; set; }

        #region Implementation of IEntityLink<Category,Word>

        ILinkedEntity<Category, Word> IFeatureLink<Category, Word>.Entity
        {
            get { return Category; }
            set { Category = (Category)value; }
        }

        ILinkedEntity<Category, Word> IFeatureLink<Category, Word>.Feature
        {
            get { return Word; }
            set { Word = (Word)value; }
        }

        #endregion
    }
*/
}
